package algo3.g203.modelo.naves;

import algo3.g203.modelo.armas.ArmaConvencional;
import algo3.g203.modelo.armas.MinaPorContacto;
import algo3.g203.modelo.armas.MinaSubmarina;
import algo3.g203.modelo.armas.explosiones.Fragmento;
import algo3.g203.modelo.fisica.Direccion;
import algo3.g203.modelo.fisica.Posicion;
import algo3.g203.modelo.naves.secciones.SeccionEstandar;
import algo3.g203.modelo.naves.secciones.SeccionTemplate;

public class Destructor extends Nave {

	private final int TAMANIO_DESTRUCTOR = 3;
	
	public Destructor(Posicion posicion, Direccion direccion) {
		super(posicion, direccion);
	}

	@Override
	public int getTamanioNave() {
		return this.TAMANIO_DESTRUCTOR;
	}

	@Override
	protected SeccionTemplate crearSeccionEspecifica(Posicion p) {
		return new SeccionEstandar(p);
	}

	/*
	 * 
	 *   COMPORTAMIENTOS ESPECIFICOS ANTE DISPAROS -----...........
	 *   MEDIANTE DOUBLE-DISPATCH
	 * 
	 */
	
	public void recibirDisparo(ArmaConvencional a) {
		for (Fragmento f : a.performExplosion())
			for (SeccionTemplate s: listaSecciones)
				s.recibirDanioDe(f);
	}

	public void recibirDisparo(MinaSubmarina m) {
		// No le realizan ningun danio
	}
	
	public void recibirDisparo(MinaPorContacto m) {
		// No le realizan ningun danio
	}

}
